TOP

LibreOffice Calc में तालिकाओं (Unpivot) का पुनर्गठन

विवरण

कभी-कभी क्रॉस (पिवट) टेबल को फ्लैट में बदलने की आवश्यकता होती है। इस प्रक्रिया को "कहा जाता है डेटा सीधा करना " (unpivot data) . ऐसे के परिणामस्वरूप " सीधा "हमें एक तालिका मिलती है जहां सभी समान डेटा एक कॉलम में होते हैं।

प्रोग्राम LibreOffice Calc में पिवट तालिकाओं को "में परिवर्तित करने के लिए कोई मानक कार्यक्षमता नहीं है समतल ", लेकिन आप संबंधित प्रक्रिया स्वयं लिख सकते हैं। आइए देखें कि यह कैसे करना है।



आइए समस्या के सार को अधिक स्पष्ट रूप से समझने के लिए नीचे दी गई तस्वीर देखें। बाईं ओर हमारे पास मैट्रिक्स (पिवट टेबल) के रूप में एक तालिका है, और दाईं ओर - कॉलम (फ्लैट टेबल) के साथ एक नियमित तालिका:

जब आप किसी तालिका का विस्तार करते हैं, तो आप विशेषता-मूल्य जोड़ी को अनपैक करते हैं जो मैट्रिक्स तालिका में स्तंभों का प्रतिच्छेदन होता है और उन्हें समतल तालिका में चपटे स्तंभों में पुन: उन्मुख करते हैं:

  • कीमत (Values) (बाईं ओर नीला) एक नए कॉलम में विस्तारित करें (दाईं ओर नीला);
  • गुण (Attributes) (बाईं ओर हरा) को भी एक नए कॉलम में विस्तारित किया जाता है (दाईं ओर हरा) और मानों के नए कॉलम के अनुसार डुप्लिकेट किया जाता है।
  • UnPivotTable प्रक्रिया के लिए StarBASIC कोड

    मेनू खोलें Tools - Macros - Edit Macros..., Module1 चुनें और निम्नलिखित पाठ को मॉड्यूल में कॉपी करें:

    1. Sub UnPivotTable  
    2.   ' moonexcel.com.ua   
    3.   Dim oBook        As Object  
    4.   Dim oActiveSheet As Object  
    5.   Dim oSelRange    As Object  
    6.   Dim oNewSheet    As Object  
    7.     
    8.   Dim i                  As Long  
    9.   Dim iTopLabelRowCount  As Integer  
    10.   Dim iSideLabelColCount As Integer         
    11.     
    12.   oBook        = ThisComponent  
    13.   oActiveSheet = oBook.CurrentController.ActiveSheet  
    14.   oSelRange    = oBook.CurrentSelection  
    15.     
    16.   ' एक नई शीट जोड़ें   
    17.   oBook.Sheets.insertNewByName("UnPivoted Table",0)  
    18.   oNewSheet = oBook.Sheets(0)  
    19.     
    20.   ' हेडर का आकार निर्धारित करें   
    21.   iTopLabelRowCount  = InputBox(" शीर्ष शीर्षलेख में कितनी पंक्तियाँ हैं? ")  
    22.   iSideLabelColCount = InputBox(" साइड हेडर में कितने कॉलम हैं? ")  
    23.               
    24.   i = 0  
    25.        
    26.   For r = (iTopLabelRowCount + 1) To oSelRange.Rows.Count  
    27.     For c = (iSideLabelColCount + 1) To oSelRange.Columns.Count              
    28.                          
    29.       For j = 1 To iSideLabelColCount                
    30.         oNewSheet.getCellByPosition(j-1, i).Formula = oSelRange.getCellByPosition(j-1, r-1).Formula                 
    31.       Next j  
    32.                
    33.       For k = 1 To iTopLabelRowCount  
    34.         oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, k-1).Formula  
    35.       Next k             
    36.                            
    37.       oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, r-1).Formula  
    38.       i = i + 1                     
    39.               
    40.     Next c  
    41.   Next r  
    42. End Sub  

    फिर, Macro Editor को बंद करें और LibreOffice Calc में अपनी वर्कशीट पर वापस लौटें। शीर्ष और बाएँ शीर्षलेखों के साथ संपूर्ण तालिका का चयन करें और मेनू Tools - Macros - Run Macro... के माध्यम से हमारा नया मैक्रो चलाएँ।

    मैक्रो आपकी कार्यपुस्तिका में एक नई नामित शीट सम्मिलित करेगा "UnPivoted Table" , और फिर नए प्रारूप में एक तालिका जोड़ें। ऐसी तालिका से आप LibreOffice Calc में कोई भी विश्लेषण कर सकते हैं।

    एक्सटेंशन का उपयोग करना

    आप उपयोगिता का भी उपयोग कर सकते हैं "पिवट टेबल (Unpivot)" एक्सटेंशन इंस्टॉल करके YLC_Utilities.oxt .

    उसके बाद, यह उपयोगिता उन सभी फ़ाइलों में उपलब्ध होगी जो LibreOffice Calc में खोली जाएंगी।

    विषय पर लेख:

  • Excel में तालिकाओं (Unpivot) का पुनर्गठन